package request

import (
	"gitcode.com/G-YT/iHealth25/server/model/common/request"
	"gitcode.com/G-YT/iHealth25/server/model/user"
	"time"
)

// Register 注册
type Register struct {
	Phone string `json:"phone" example:"用户手机号/账号"`
	//Code         string `json:"code" example:"短信验证码"`
	Password     string `json:"password" example:"登录密码"`
	StewardID    uint   `json:"steward_id" example:"健管师id"`
	InviteUserID uint   `json:"invite_user_id" example:"邀请人id"`
}

// Authorize 微信授权
type Authorize struct {
	OpenID string `json:"openID" example:"微信OpenID"`
}

// Login 登陆
type Login struct {
	Phone    string `json:"phone"`    // 用户手机号/账号
	Password string `json:"password"` // 登录密码
}

// UpdateUser 修改用户信息
type UpdateUser struct {
	ID           uint      `json:"id"`
	Name         string    `json:"name"`
	Avatar       string    `json:"avatar"`
	Sex          uint      `json:"sex"`
	Phone        string    `json:"phone"`
	Birthday     time.Time `json:"birthday"`
	Province     uint      `json:"province"`
	City         uint      `json:"city"`
	Area         uint      `json:"area"`
	Addr         string    `json:"addr"`
	Contact      string    `json:"contact"`
	ContactPhone string    `json:"contact_Phone"`
}

// ChangePassword 修改密码
type ChangePassword struct {
	ID          uint   `json:"-"`           // 从 JWT 中提取id，避免越权
	Password    string `json:"password"`    // 密码
	NewPassword string `json:"newPassword"` // 新密码
	Code        string `json:"code"`        // 验证码
}

// ForgetPassword 忘记密码
type ForgetPassword struct {
	Phone string `json:"phone"` // 用户手机号/账号
	Code  string `json:"code"`  // 短信验证码
}

type PromotionUserSearch struct {
	StewardID uint   `json:"stewardID"`
	Name      string `json:"name" form:"name"`
	Phone     string `json:"phone" form:"phone"`
}

type UserSearch struct {
	user.User
	StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"`
	EndCreatedAt   *time.Time `json:"endCreatedAt" form:"endCreatedAt"`
	request.PageInfo
}

type QRCode struct {
	StewardID    uint `json:"steward_id" form:"steward_id"`
	InviteUserID uint `json:"invite_user_id" form:"invite_user_id"`
}

type SunCode struct {
	ID uint `json:"id" form:"id"`
}
